# nn

import pandas as pd
import numpy as np
import tensoflow as tf
from joblib import load
import sklearn.preprocessing import StandardScaler


from sklearn.preprocessing import StandardScaler

class NN(object):
    def __init__(self):
            self.loaded_model = tf.keras.models.load_model('.NN/my_model.keras')
            self.scaler = load('.NN/scaler.joblib')

    def get_hourly_trend(self):
        """获取预测结果"""
        n_steps = 7
        df_pivot = pd.read_csv('./NN/scenic_data.csv')
        latest_data = df_pivot.iloc[-n_steps:].values#取后七天数据
        latest_data = latest_data.reshape(1, n_steps, latest_data.shape[1])

        #预测与反归一化
        predicted = self.loaded_model.predict(latest_data)
        predicted_counts = self.scaler.inverse_transform(predicted) #反归一化
        predicted_counts[predicted_counts < 0] = 0 #修正负数

        hourly_trend = predicted_counts[0].astype(int).tolist()
        print(hourly_trend)            
            
if __name__ == '__main__':
    nn = NN()
    nn.get_hourly_trend       